package model; import javax.swing.JTable; import javax.swing.table.AbstractTableModel; import javax.swing.table.DefaultTableModel; import bank.Bank; @SuppressWarnings("serial") public class PersonsTableModel extends AbstractTableModel { private Bank bank; private String[] columnNames = { "Person", "Person ID", "Account ID", "Account Type", "Sum" }; private Object[][] data; DefaultTableModel model = new DefaultTableModel(data,columnNames); JTable table = new JTable(model); public PersonsTableModel(Bank bank) { this.bank = bank; data = bank.getAllEntriesForTable(); } public PersonsTableModel(Bank bank,Person person) { this.bank = bank; data = bank.getPersonEntriesForTable(person); } public void updateModel(Person person) { data = bank.getPersonEntriesForTable(person); } public void updateModel() { data = bank.getAllEntriesForTable(); } public String getColumnName(int col) { return columnNames[col]; } @Override public int getColumnCount() { return columnNames.length; } @Override public int getRowCount() { return data.length; } @SuppressWarnings({ "unchecked", "rawtypes" }) public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); } @Override public Object getValueAt(int row, int col) { return data[row][col]; } public boolean isCellEditable(int row, int col) { if (col == 4) { return true; } return false; } public void setValueAt(Object value, int row, int col) { bank.writeAccountData((Long) getValueAt(row, 1), (Long) getValueAt(row, 2), (Long) value); data[row][col] = value; fireTableCellUpdated(row, col); } public void removeRow(int selectedRow) { fireTableRowsDeleted(selectedRow, selectedRow); fireTableStructureChanged(); } }